package com.kaifamiao.inner;

/**
 * 用匿名类实现接口
 */
public class TestFlyable {

    public static void main(String[] args) {

        // 用匿名类仅实现单个接口 (此时匿名类的直接父类就是Object类)
        Flyable f = new Flyable() {
            // 匿名类没有类名，因此不能显式书写构造方法
            // 匿名类实际上是有构造方法的(用于创建其实例)
            @Override
            public void fly() {
                System.out.println( "飞起来了" );
            }
        };

        f.fly();

        // 获得引用变量 f 所指向实例的 类型
        Class c = f.getClass();
        System.out.println( c );

        f = new Flyable() {
            // 匿名类仅在创建其实例时使用
            @Override
            public void fly() {
                System.out.println( "飞起来了" );
            }
        };

        f.fly();

        c = f.getClass();
        System.out.println( c );

    }

}
